// 也可以字面量进行类型声明
var a;
a = 10;
// d = 11;//报错
// 可以使用|连接多个类型(联合类型)
var b;
b = "male";
b = "felmale";
var c;
c = true;
c = "hello";
// any 表示的是任意类型，一个变量设置类型为any后期相当于该变量关闭了TS类型的检测
// 使用TS时，不建议使用any类型
// 声明变量不赋值，不指定类型，则TS会默认为any
var d;
d = 10;
d = "hello";
d = true;
// unknown;表示未知类型的值
// unknown类型变量，实际上类型安全any,不能直接赋值给其他变量
var e;
e = 10;
e = 'hello';
e = true;
var s;
// d的类型是any ，它可以赋值给任意变量
// s=d;
e = 'hello';
// s=e;报错 e是未知类型
// 类型断言，可以用来告诉解析器变量的实际类型
/*
 语法：
  变量 as 类型
  <类型>变量
*/
s = e;
s = e;
// void 用来表示空，以函数为例，就表示没有返回值的函数
function fn() {
    // return undefined 
    return null;
}
// never 表示永远不会返回结果
function fn2() {
    throw new Error("报错了");
}
